<template>
    <div class="wrapper">
			
			<!-- header部分 -->
			<header>
				<p>商家信息</p>
			</header>
			
			<!-- 商家logo部分 -->
			<div class="business-logo">
				<img :src="business.businessImg">
			</div>
			
			<!-- 商家信息部分 -->
			<div class="business-info">
				<h1>{{business.businessName}}</h1>
				<p>&#165;{{business.starPrice}}起送 &#165;{{business.deliveryPrice}}配送</p>
				<p>{{business.businessExplain}}</p>
			</div>
			
			<!-- 食品列表部分 -->
			<ul class="food">
				<li v-for="(item,index) in foodArray">
					<div class="food-left">
						<img :src="item.foodImg">
						<div class="food-left-info">
							<h3>{{item.foodName}}</h3>
							<p>{{item.foodExplain}}</p>
							<p>&#165;{{item.foodPrice}}</p>
						</div>
					</div>
					<div class="food-right">
						<div>
						<i class="fa fa-minus-circle" @click="minus(index)" v-show="item.quantity!=0&&item.quantity!=null"></i>
						</div>
						<p><span v-show="item.quantity!=0">{{item.quantity}}</span></p>
						<div>
							<i class="fa fa-plus-circle" @click="plus(index)"></i>
						</div>
					</div>
				</li>
			</ul>
			
			<!-- 购物车部分 -->
			<div class="cart">
				<div class="cart-left">
					<div class="cart-left-icon">
						<i class="fa fa-shopping-cart"></i>
						<div class="cart-left-icon-quantity" v-show="totalQuantity!=0">{{totalQuantity}}</div>
					</div>
					<div class="cart-left-info">
						<p>&#165;{{totalPrice}}</p>
						<p>另需配送费{{business.deliveryPrice}}元</p>
					</div>
				</div>
				<div class="cart-right">
					<!-- 不够起送费 -->
					
					<div class="cart-right-item1" v-show="totalPrice < business.starPrice">
						&#165;{{business.starPrice}}起送
					</div>
					
					<!-- 达到起送费 -->
					<div class="cart-right-item" @click="goOrder()">
					    去结算
					</div>
				</div>
			</div>
		</div>	
</template>

<script>
import { get } from 'http';

    export default{
        data(){
            return {
                //获取query参数
                businessId:this.$route.query.businessId,
                business:{},
                foodArray:[],
                user:{},
				cartArray:[],
				deliveryAddressArray:[]
            }

        },
        created(){
            //从sessionStorage中获取到用户的信息，如果没有此用户的信息，返回null
            this.user = this.$getSessionStorage('user');

             // 利用axios根据businessId查询商家的信息
             this.$axios.post('BusinessController/getBusinessById',this.$qs.stringify({
                businessId:this.businessId
             })).then(response=>{
                //如果请求成功从后台获取到数据
                this.business = response.data;
                console.log(this.business);
             }).catch(error=>{
                console.error(error);
             })

             // 利用axios根据businessId查询食品信息
             this.$axios.post('/FoodController/listFoodByBusinessId',this.$qs.stringify({
                businessId:this.businessId
             })).then(response=>{
                //如果请求成功从后台获取到数据
                this.foodArray = response.data;
                console.log(this.foodArray);
				if (this.user != null) {
					this.listcart();
					this.totalQuantity;
					this.totalPrice;
					this.total;
				}
             }).catch(error=>{
                console.error(error);
             })

			 // 利用axios根据userId查询配送地址
             this.$axios.post('DeliveryAddressController/listDeliveryAddressByUserId',this.$qs.stringify({
                userId:this.user.userId
             })).then(response=>{
                //如果请求成功从后台获取到数据
                this.deliveryAddressArray = response.data;
                console.log(this.deliveryAddressArray[0].daId);
             }).catch(error=>{
                console.error(error);
             })
        },
        methods:{
           minus(index){
            //首先验证是否登录,判断用户是否存在，如果不存在就跳转到login页面
            if(this.user == null){
                //页面跳转
                this.$router.push({
                    path:'/login',
                });
            }
			else{
				this.foodArray[index].quantity--;
				if(this.foodArray[index].quantity > 0){
					this.updatecart(index);
				} else{
					this.removecart(index);
				}
				this.totalQuantity;
				this.totalPrice;
				this.total;
			}
           },
           plus(index){
            //首先验证是否登录,判断用户是否存在，如果不存在就跳转到login页面
            if(this.user == null){
                //页面跳转
                this.$router.push({
                    path:'/login',
                });
            }else{
				if(this.foodArray[index].quantity == 0){
					this.foodArray[index].quantity++;
					this.savecart(index);
					
				} else{
					this.foodArray[index].quantity++;
					this.updatecart(index);
					
				}
				this.totalQuantity;
				this.totalPrice;
				this.total;
				
			}
           },
		   listcart(){
				// 利用axios根据userId,businessId查询购物车的信息
             this.$axios.post('CartController/listCart',this.$qs.stringify({
				userId:this.user.userId,
                businessId:this.businessId,
             })).then(response=>{
                //如果请求成功从后台获取到数据
                this.cartArray = response.data;
				for( let food of this.foodArray) {
					food.quantity = 0;
					for (let cart of this.cartArray) {
						if (cart.foodId == food.foodId) {
							food.quantity = cart.quantity;
						}
					}
				}
                console.log(response.data);
             }).catch(error=>{
                console.error(error);
             })
		   },
		   savecart(index){
				// 利用axios根据userId,businessId,foodId,quantity添加购物车的信息
             this.$axios.post('CartController/saveCart',this.$qs.stringify({
				userId:this.user.userId,
                businessId:this.businessId,
				foodId:this.foodArray[index].foodId,
				quantity:this.foodArray[index].quantity
             })).then(response=>{
                //如果请求成功从后台获取到数据
                let result = response.data;
                console.log(result);
             }).catch(error=>{
                console.error(error);
             })
		   },
		   updatecart(index){
			// 利用axios根据userId,businessId,foodId,quantity修改购物车的信息
             this.$axios.post('CartController/updateCart',this.$qs.stringify({
				userId:this.user.userId,
                businessId:this.businessId,
				foodId:this.foodArray[index].foodId,
				quantity:this.foodArray[index].quantity
             })).then(response=>{
                //如果请求成功从后台获取到数据
                let result = response.data;
                console.log(result);
             }).catch(error=>{
                console.error(error);
             })
		   },
		   removecart(index){
				// 利用axios根据userId,businessId,foodId删除购物车的信息
             this.$axios.post('CartController/removeCart',this.$qs.stringify({
				userId:this.user.userId,
                businessId:this.businessId,
				foodId:this.foodArray[index].foodId,
             })).then(response=>{
                //如果请求成功从后台获取到数据
                let result = response.data;
                console.log(result);
             }).catch(error=>{
                console.error(error);
             })
		   },
		   goOrder(){
			this.$setSessionStorage('business',this.business)
			this.$setSessionStorage('orderTotal',this.total)
				//页面跳转
				this.$router.push({
					path:'/order',
					// 参数
					query:{
						businessId:this.businessId,
						orderTotal:this.total,
						cartArray:this.cartArray
					}
				});

		   }
        },
		computed: {
			//总价格
			totalPrice() {
				let fprice = 0;
				for (let food of this.foodArray) {
					fprice += food.foodPrice * food.quantity;
				}
				return fprice;
			},
			//总数量
			totalQuantity() {
				let qtotal = 0;
				for (let food of this.foodArray) {
					qtotal += food.quantity;
				}
				return qtotal;
			},
			//结算总价格
			total() {
				return this.totalPrice + this.business.deliveryPrice;
			}
    	}
	}
</script>

<style scoped>
    /****************** 总容器 ******************/
.wrapper{
	width: 100%;
	height: 100%;
}

/****************** header部分 ******************/
.wrapper header{
	width: 100%;
	height: 12vw;
	background-color: #0097FF;
	color: #fff;
	font-size: 4.8vw;
	
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1000;
	
	display: flex;
	justify-content: center;
	align-items: center;
}

/****************** 商家logo部分 ******************/
.wrapper .business-logo{
	width: 100%;
	height: 35vw;
	/*使用上外边距避开header部分*/
	margin-top: 12vw;
	
	display: flex;
	justify-content: center;
	align-items: center;
}
.wrapper .business-logo img{
	width: 40vw;
	height: 30vw;
	border-radius: 5px;
}

/****************** 商家信息部分 ******************/
.wrapper .business-info{
	width: 100%;
	height: 20vw;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.wrapper .business-info h1{
	font-size: 5vw;
}
.wrapper .business-info p{
	font-size: 3vw;
	color: #666;
	margin-top: 1vw;
}

/****************** 食品列表部分 ******************/
.wrapper .food{
	width: 100%;
	/*使用下外边距避开footer部分*/
	margin-bottom: 14vw;
}
.wrapper .food li{
	width: 100%;
	box-sizing: border-box;
	padding: 2.5vw;
	user-select: none;
	
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.wrapper .food li .food-left{
	display: flex;
	align-items: center;
}
.wrapper .food li .food-left img{
	width: 20vw;
	height: 20vw;
}
.wrapper .food li .food-left .food-left-info{
	margin-left: 3vw;
}
.wrapper .food li .food-left .food-left-info h3{
	font-size: 3.8vw;
	color: #555;
}
.wrapper .food li .food-left .food-left-info p{
	font-size: 3vw;
	color: #888;
	margin-top: 2vw;
}
.wrapper .food li .food-right{
	width: 16vw;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.wrapper .food li .food-right .fa-minus-circle{
	font-size: 5.5vw;
	color: #999;
	cursor: pointer;
}
.wrapper .food li .food-right p{
	font-size: 3.6vw;
	color: #333;
}
.wrapper .food li .food-right .fa-plus-circle{
	font-size: 5.5vw;
	color: #0097EF;
	cursor: pointer;
}

/****************** 购物车部分 ******************/
.wrapper .cart{
	width: 100%;
	height: 14vw;
	
	position: fixed;
	left: 0;
	bottom: 0;
	
	display: flex;
}
.wrapper .cart .cart-left{
	flex: 2;
	background-color: #505051;
	display: flex;
}
.wrapper .cart .cart-left .cart-left-icon{
	width: 16vw;
	height: 16vw;
	box-sizing: border-box;
	border: solid 1.6vw #444;
	border-radius: 8vw;
	background-color: #3190E8;
	font-size: 7vw;
	color: #fff;
	
	display: flex;
	justify-content: center;
	align-items: center;
	
	margin-top: -4vw;
	margin-left: 3vw;
	
	position: relative;
}
.wrapper .cart .cart-left .cart-left-icon-quantity{
	width: 5vw;
	height: 5vw;
	border-radius: 2.5vw;
	background-color: red;
	color: #fff;
	font-size: 3.6vw;
	
	display: flex;
	justify-content: center;
	align-items: center;
	
	position: absolute;
	right: -1.5vw;
	top: -1.5vw;
}
.wrapper .cart .cart-left .cart-left-info p:first-child{
	font-size: 4.5vw;
	color: #fff;
	margin-top: 1vw;
}
.wrapper .cart .cart-left .cart-left-info p:last-child{
	font-size: 2.8vw;
	color: #AAA;
}

.wrapper .cart .cart-right{
	flex: 1;
}
/*达到起送费时的样式*/
.wrapper .cart .cart-right .cart-right-item{
	width: 100%;
	height: 100%;
	background-color: #38CA73;
	color: #fff;
	font-size: 4.5vw;
	font-weight: 700;
	user-select: none;
	cursor: pointer;
	
	display: flex;
	justify-content: center;
	align-items: center;
}

/*不够起送费时的样式（只有背景色和鼠标样式的区别）*/

.wrapper .cart .cart-right .cart-right-item1{
	width: 100%;
	height: 100%;
	background-color: #535356;
	color: #fff;
	font-size: 4.5vw;
	font-weight: 700;
	user-select: none;
	
	display: flex;
	justify-content: center;
	align-items: center;
}

</style>